//
//  UIButton+Utils.h
//  iOSTE
//
//  Created by LL on 2021/9/14.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface UIButton (Utils)

/// 计算 UIControlStateNormal 样式下文字1行显示所需要的宽度
@property (nonatomic, readonly) CGFloat w_textWidth;

/**
 * 计算 UIControlStateNormal 样式下文字显示所需要的高度
 *
 * 需要提前设置 titleLabel.preferredMaxLayoutWidth
 */
@property (nonatomic, readonly) CGFloat w_textHeight;

/**
 * 计算 UIControlStateNormal 样式下文字显示所需要的宽高度
 *
 * 如果没有设置 titleLabel.preferredMaxLayoutWidth 将会按照一行计算
 */
@property (nonatomic, readonly) CGSize w_textSize;

/// 计算指定样式下文字1行显示所需要的宽度
- (CGFloat)w_textWidthForState:(UIControlState)state;

/**
 * 计算指定样式下文字显示所需要的高度
 *
 * 需要提前设置 titleLabel.preferredMaxLayoutWidth
 */
- (CGFloat)w_textHeightForState:(UIControlState)state;

/**
 * 计算指定样式下文字显示所需要的宽高度
 *
 * 如果没有设置 titleLabel.preferredMaxLayoutWidth 将会按照一行计算
 */
- (CGSize)w_textSizeForState:(UIControlState)state;

@end

NS_ASSUME_NONNULL_END
